--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tests/backend/test_sticker_packs_dao.py dev (af76f09d) Text, 4.59 KB
T8b949e# SPDX-License-Identifier: 0BSD
T8b949e"""Tests for UserStickerPacksDAO and pack/sticker association."""
Tff7b72import T7ee787pytest
Tff7b72from T7ee787meshchatxT7ee787.T7ee787srcT7ee787.T7ee787backendT7ee787.T7ee787database Tff7b72import Te6edf3Database
Tf0883e@pytestTff7b72.Td2a8fffixture
Tff7b72def Td2a8ffdbTb4b4b4(Te6edf3tmp_pathTb4b4b4)Tb4b4b4:
Te6edf3path Tff7b72= Te6edf3tmp_path Tff7b72/ Ta5d6ff"Ta5d6fft.dbTa5d6ff"
Te6edf3database Tff7b72= Te6edf3DatabaseTb4b4b4(Tffa657strTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4)
Te6edf3databaseTff7b72.Td2a8ffinitializeTb4b4b4(Tb4b4b4)
Tff7b72return Te6edf3database
Tff7b72def Td2a8ff_tiny_pngTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72return Tffa657bytesTb4b4b4(Tb4b4b4[T79c0ff0x89Tb4b4b4, T79c0ff0x50Tb4b4b4, T79c0ff0x4ETb4b4b4, T79c0ff0x47Tb4b4b4, T79c0ff0x0DTb4b4b4, T79c0ff0x0ATb4b4b4, T79c0ff0x1ATb4b4b4, T79c0ff0x0ATb4b4b4]Tb4b4b4) Tff7b72+ Ta5d6ffbTa5d6ff"Tffea00\x00Ta5d6ff" Tff7b72* T79c0ff32
Tff7b72def Td2a8fftest_create_and_list_packsTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3identity Tff7b72= Ta5d6ff"Ta5d6ffaaTa5d6ff" Tff7b72* T79c0ff16
Te6edf3pack Tff7b72= Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffinsertTb4b4b4(
Te6edf3identityTb4b4b4,
Ta5d6ff"Ta5d6ffCatsTa5d6ff"Tb4b4b4,
Te6edf3short_nameTff7b72=Ta5d6ff"Ta5d6ffcatsTa5d6ff"Tb4b4b4,
Te6edf3descriptionTff7b72=Ta5d6ff"Ta5d6fffurryTa5d6ff"Tb4b4b4,
Te6edf3pack_typeTff7b72=Ta5d6ff"Ta5d6ffstaticTa5d6ff"Tb4b4b4,
Tb4b4b4)
Tff7b72assert Te6edf3packTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4] Tff7b72>Tff7b72= T79c0ff1
Tff7b72assert Te6edf3packTb4b4b4[Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffCatsTa5d6ff"
Tff7b72assert Te6edf3packTb4b4b4[Ta5d6ff"Ta5d6ffshort_nameTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffcatsTa5d6ff"
Te6edf3rows Tff7b72= Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8fflist_for_identityTb4b4b4(Te6edf3identityTb4b4b4)
Tff7b72assert Tffa657lenTb4b4b4(Te6edf3rowsTb4b4b4) Tff7b72== T79c0ff1
Tff7b72assert Te6edf3rowsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4[Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffCatsTa5d6ff"
Tff7b72def Td2a8fftest_short_name_unique_per_identityTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3identity Tff7b72= Ta5d6ff"Ta5d6ffbbTa5d6ff" Tff7b72* T79c0ff16
Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3identityTb4b4b4, Ta5d6ff"Ta5d6ffATa5d6ff"Tb4b4b4, Te6edf3short_nameTff7b72=Ta5d6ff"Ta5d6ffdupTa5d6ff"Tb4b4b4)
Tff7b72with Te6edf3pytestTff7b72.Td2a8ffraisesTb4b4b4(Tf85149ValueErrorTb4b4b4, Te6edf3matchTff7b72=Ta5d6ff"Ta5d6ffduplicate_pack_short_nameTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3identityTb4b4b4, Ta5d6ff"Ta5d6ffBTa5d6ff"Tb4b4b4, Te6edf3short_nameTff7b72=Ta5d6ff"Ta5d6ffdupTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8fftest_short_name_scoped_to_identityTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3a Tff7b72= Ta5d6ff"Ta5d6ff11Ta5d6ff" Tff7b72* T79c0ff16
Te6edf3b Tff7b72= Ta5d6ff"Ta5d6ff22Ta5d6ff" Tff7b72* T79c0ff16
Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3aTb4b4b4, Ta5d6ff"Ta5d6ffATa5d6ff"Tb4b4b4, Te6edf3short_nameTff7b72=Ta5d6ff"Ta5d6ffsharedTa5d6ff"Tb4b4b4)
Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3bTb4b4b4, Ta5d6ff"Ta5d6ffBTa5d6ff"Tb4b4b4, Te6edf3short_nameTff7b72=Ta5d6ff"Ta5d6ffsharedTa5d6ff"Tb4b4b4)
Tff7b72assert Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffcount_for_identityTb4b4b4(Te6edf3aTb4b4b4) Tff7b72== T79c0ff1
Tff7b72assert Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffcount_for_identityTb4b4b4(Te6edf3bTb4b4b4) Tff7b72== T79c0ff1
Tff7b72def Td2a8fftest_update_packTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3identity Tff7b72= Ta5d6ff"Ta5d6ffccTa5d6ff" Tff7b72* T79c0ff16
Te6edf3pack Tff7b72= Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3identityTb4b4b4, Ta5d6ff"Ta5d6ffOldTa5d6ff"Tb4b4b4)
Te6edf3ok Tff7b72= Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffupdateTb4b4b4(
Te6edf3packTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4,
Te6edf3identityTb4b4b4,
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffNewTa5d6ff"Tb4b4b4,
Te6edf3descriptionTff7b72=Ta5d6ff"Ta5d6ffdescTa5d6ff"Tb4b4b4,
Te6edf3pack_typeTff7b72=Ta5d6ff"Ta5d6ffanimatedTa5d6ff"Tb4b4b4,
Tb4b4b4)
Tff7b72assert Te6edf3ok Tff7b72is Tff7b72True
Te6edf3row Tff7b72= Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffget_rowTb4b4b4(Te6edf3packTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3identityTb4b4b4)
Tff7b72assert Te6edf3rowTb4b4b4[Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffNewTa5d6ff"
Tff7b72assert Te6edf3rowTb4b4b4[Ta5d6ff"Ta5d6ffdescriptionTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffdescTa5d6ff"
Tff7b72assert Te6edf3rowTb4b4b4[Ta5d6ff"Ta5d6ffpack_typeTa5d6ff"Tb4b4b4] Tff7b72== Ta5d6ff"Ta5d6ffanimatedTa5d6ff"
Tff7b72def Td2a8fftest_delete_detaches_stickersTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3identity Tff7b72= Ta5d6ff"Ta5d6ffddTa5d6ff" Tff7b72* T79c0ff16
Te6edf3pack Tff7b72= Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3identityTb4b4b4, Ta5d6ff"Ta5d6ffPTa5d6ff"Tb4b4b4)
Te6edf3sticker Tff7b72= Te6edf3dbTff7b72.Td2a8ffstickersTff7b72.Td2a8ffinsertTb4b4b4(
Te6edf3identityTb4b4b4,
Ta5d6ff"Ta5d6ffsTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffpngTa5d6ff"Tb4b4b4,
Te6edf3_tiny_pngTb4b4b4(Tb4b4b4)Tb4b4b4,
Tff7b72NoneTb4b4b4,
Te6edf3pack_idTff7b72=Te6edf3packTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4,
Tb4b4b4)
Tff7b72assert Te6edf3sticker Tff7b72is Tff7b72not Tff7b72None
Tff7b72assert Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffdeleteTb4b4b4(Te6edf3packTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3identityTb4b4b4) Tff7b72is Tff7b72True
Te6edf3full Tff7b72= Te6edf3dbTff7b72.Td2a8ffstickersTff7b72.Td2a8ffget_rowTb4b4b4(Te6edf3stickerTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3identityTb4b4b4)
Tff7b72assert Te6edf3full Tff7b72is Tff7b72not Tff7b72None
Tff7b72assert Te6edf3fullTb4b4b4[Ta5d6ff"Ta5d6ffpack_idTa5d6ff"Tb4b4b4] Tff7b72is Tff7b72None
Tff7b72def Td2a8fftest_delete_with_stickers_removes_themTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3identity Tff7b72= Ta5d6ff"Ta5d6ffeeTa5d6ff" Tff7b72* T79c0ff16
Te6edf3pack Tff7b72= Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3identityTb4b4b4, Ta5d6ff"Ta5d6ffPTa5d6ff"Tb4b4b4)
Te6edf3sticker Tff7b72= Te6edf3dbTff7b72.Td2a8ffstickersTff7b72.Td2a8ffinsertTb4b4b4(
Te6edf3identityTb4b4b4,
Ta5d6ff"Ta5d6ffsTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffpngTa5d6ff"Tb4b4b4,
Te6edf3_tiny_pngTb4b4b4(Tb4b4b4)Tb4b4b4,
Tff7b72NoneTb4b4b4,
Te6edf3pack_idTff7b72=Te6edf3packTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4,
Tb4b4b4)
Tff7b72assert Te6edf3sticker Tff7b72is Tff7b72not Tff7b72None
Tff7b72assert Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffdelete_with_stickersTb4b4b4(Te6edf3packTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3identityTb4b4b4) Tff7b72is Tff7b72True
Tff7b72assert Te6edf3dbTff7b72.Td2a8ffstickersTff7b72.Td2a8ffget_rowTb4b4b4(Te6edf3stickerTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3identityTb4b4b4) Tff7b72is Tff7b72None
Tff7b72def Td2a8fftest_reorderTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3identity Tff7b72= Ta5d6ff"Ta5d6ffffTa5d6ff" Tff7b72* T79c0ff16
Te6edf3a Tff7b72= Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3identityTb4b4b4, Ta5d6ff"Ta5d6ffATa5d6ff"Tb4b4b4)
Te6edf3b Tff7b72= Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3identityTb4b4b4, Ta5d6ff"Ta5d6ffBTa5d6ff"Tb4b4b4)
Te6edf3c Tff7b72= Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3identityTb4b4b4, Ta5d6ff"Ta5d6ffCTa5d6ff"Tb4b4b4)
Te6edf3n Tff7b72= Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffreorderTb4b4b4(Te6edf3identityTb4b4b4, Tb4b4b4[Te6edf3cTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3aTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3bTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4]Tb4b4b4)
Tff7b72assert Te6edf3n Tff7b72== T79c0ff3
Te6edf3rows Tff7b72= Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8fflist_for_identityTb4b4b4(Te6edf3identityTb4b4b4)
Tff7b72assert Tb4b4b4[Te6edf3rTb4b4b4[Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4] Tff7b72for Te6edf3r Tff7b72in Te6edf3rowsTb4b4b4] Tff7b72== Tb4b4b4[Ta5d6ff"Ta5d6ffCTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffATa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffBTa5d6ff"Tb4b4b4]
Tff7b72def Td2a8fftest_assign_to_packTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3identity Tff7b72= Ta5d6ff"Ta5d6ff01Ta5d6ff" Tff7b72* T79c0ff16
Te6edf3pack Tff7b72= Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3identityTb4b4b4, Ta5d6ff"Ta5d6ffPTa5d6ff"Tb4b4b4)
Te6edf3sticker Tff7b72= Te6edf3dbTff7b72.Td2a8ffstickersTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3identityTb4b4b4, Ta5d6ff"Ta5d6ffsTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffpngTa5d6ff"Tb4b4b4, Te6edf3_tiny_pngTb4b4b4(Tb4b4b4)Tb4b4b4, Tff7b72NoneTb4b4b4)
Tff7b72assert Te6edf3dbTff7b72.Td2a8ffstickersTff7b72.Td2a8ffassign_to_packTb4b4b4(Te6edf3stickerTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3identityTb4b4b4, Te6edf3packTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4) Tff7b72is Tff7b72True
Te6edf3rows Tff7b72= Te6edf3dbTff7b72.Td2a8ffstickersTff7b72.Td2a8fflist_for_packTb4b4b4(Te6edf3packTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3identityTb4b4b4)
Tff7b72assert Tffa657lenTb4b4b4(Te6edf3rowsTb4b4b4) Tff7b72== T79c0ff1
Tff7b72assert Te6edf3dbTff7b72.Td2a8ffstickersTff7b72.Td2a8ffassign_to_packTb4b4b4(Te6edf3stickerTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3identityTb4b4b4, Tff7b72NoneTb4b4b4) Tff7b72is Tff7b72True
Tff7b72assert Te6edf3dbTff7b72.Td2a8ffstickersTff7b72.Td2a8fflist_for_packTb4b4b4(Te6edf3packTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3identityTb4b4b4) Tff7b72== Tb4b4b4[Tb4b4b4]
Tff7b72def Td2a8fftest_export_and_install_pack_roundtripTb4b4b4(Te6edf3dbTb4b4b4)Tb4b4b4:
Te6edf3identity Tff7b72= Ta5d6ff"Ta5d6ff02Ta5d6ff" Tff7b72* T79c0ff16
Te6edf3other Tff7b72= Ta5d6ff"Ta5d6ff03Ta5d6ff" Tff7b72* T79c0ff16
Te6edf3pack Tff7b72= Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3identityTb4b4b4, Ta5d6ff"Ta5d6ffPackTa5d6ff"Tb4b4b4, Te6edf3short_nameTff7b72=Ta5d6ff"Ta5d6ffpackTa5d6ff"Tb4b4b4)
Te6edf3dbTff7b72.Td2a8ffstickersTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3identityTb4b4b4, Ta5d6ff"Ta5d6ffsTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffpngTa5d6ff"Tb4b4b4, Te6edf3_tiny_pngTb4b4b4(Tb4b4b4)Tb4b4b4, Tff7b72NoneTb4b4b4, Te6edf3pack_idTff7b72=Te6edf3packTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4)
Te6edf3payloads Tff7b72= Te6edf3dbTff7b72.Td2a8ffstickersTff7b72.Td2a8ffexport_payloads_for_packTb4b4b4(Te6edf3packTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3identityTb4b4b4)
Tff7b72assert Tffa657lenTb4b4b4(Te6edf3payloadsTb4b4b4) Tff7b72== T79c0ff1
Te6edf3new_pack Tff7b72= Te6edf3dbTff7b72.Td2a8ffsticker_packsTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3otherTb4b4b4, Ta5d6ff"Ta5d6ffPackTa5d6ff"Tb4b4b4)
Te6edf3items Tff7b72= Tb4b4b4[
Tb4b4b4{
Ta5d6ff"Ta5d6ffnameTa5d6ff"Tb4b4b4: Te6edf3pTb4b4b4[Ta5d6ff"Ta5d6ffnameTa5d6ff"Tb4b4b4]Tb4b4b4,
Ta5d6ff"Ta5d6ffimage_typeTa5d6ff"Tb4b4b4: Te6edf3pTb4b4b4[Ta5d6ff"Ta5d6ffimage_typeTa5d6ff"Tb4b4b4]Tb4b4b4,
Ta5d6ff"Ta5d6ffimage_bytes_b64Ta5d6ff"Tb4b4b4: Te6edf3pTb4b4b4[Ta5d6ff"Ta5d6ffimage_bytesTa5d6ff"Tb4b4b4]Tb4b4b4,
Ta5d6ff"Ta5d6ffemojiTa5d6ff"Tb4b4b4: Te6edf3pTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffemojiTa5d6ff"Tb4b4b4)Tb4b4b4,
Tb4b4b4}
Tff7b72for Te6edf3p Tff7b72in Te6edf3payloads
Tb4b4b4]
Te6edf3r Tff7b72= Te6edf3dbTff7b72.Td2a8ffstickersTff7b72.Td2a8ffimport_payloadsTb4b4b4(
Te6edf3otherTb4b4b4,
Te6edf3itemsTb4b4b4,
Te6edf3replace_duplicatesTff7b72=Tff7b72FalseTb4b4b4,
Te6edf3pack_idTff7b72=Te6edf3new_packTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4,
Tb4b4b4)
Tff7b72assert Te6edf3rTb4b4b4[Ta5d6ff"Ta5d6ffimportedTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff1
Te6edf3rows Tff7b72= Te6edf3dbTff7b72.Td2a8ffstickersTff7b72.Td2a8fflist_for_packTb4b4b4(Te6edf3new_packTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3otherTb4b4b4)
Tff7b72assert Tffa657lenTb4b4b4(Te6edf3rowsTb4b4b4) Tff7b72== T79c0ff1
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────